The Wasteful Legacy of Programming as Language
A few years ago I visited a friend who is a graduate student in linguistics. After some time he asked me if I was aware of the work by Chomsky on formal languages. I told him that yes, Chomsky work was a basis for much of the developments in theoretical computer science. More than that, I was glad to learn that there was something technical that I could share and discuss with other people in linguistics.
At the time I found this was just a great coincidence. It was only recently, though, that I started to think seriously about the implications of the idea that much of our understanding of computer programming stated with the study of human languages.
Language and Computers

One of the early ambitions in computer science was to understand, or at least be able to parse, human language. In order to do this, computer scientists explored models of how language worked in general. Based on these models, researchers figured out that we could classify languages in terms of complexity. Moreover, many computer languages could be entirely contained in some of the lower levels of this hierarchy, which is called the Chomsky hierarchy.
This was an incredible discovery for scientists working on compilers and interpreters, because its developments resulted in the necessary tools to efficiently parse languages. After that, instead of creating ad hoc parsers, which was the norm in the early period, one could apply a rigorous method to find a parser for a particular programming language.
The insidious side of this success, however, is that it completely changed the perceptions computer scientists have of how to give instructions to computers. We now have a frame of mind in which the important thing in the process of instructing a computer is to define a suitable language – and the more powerful the language the better.
The problem of this line of reasoning is that it creates a number of hurdles that are completely artificial, as we will soon discuss. For example, it makes us believe that there is something fundamentally different between programming languages, when in fact it doesn’t.
Computer Languages versus Human Languages
When we look at human languages, it does make sense that different languages exist. After all, language is a cultural concept. For example, as a speaker of two languages, it is very clear to me that speaking in English conveys different meaning and context, compared to things spoken in my mother language. There are a set of ideas that are better expressed in English, as well as there is a huge subset of thoughts that I wouldn’t be able to express well in anything other than my primary language.
As human beings, we want language to be inexact and able to convey several meanings. Contrary to the popular belief among mathematicians and engineers, this is a good feature of human languages, because it mimics the way we think. The truth about the study of language is that we are dealing with the whole culture of a community, not just with a stream of tokens that convey meaning.
The opposite, however, is true for computer languages. While we might strongly favor the use of human-like language, computers don’t really care if we use a bracket of a “begin” symbol to start a block of commands. Which means that we are, by introducing the subtleties of human language, complicating the task of how to instruct computers. Instead, we could just avoid the subtle differences in programming language and use a simple, uniform representation.
Unnecessary Work
The other problem with using current programming languages is that they create a lot of unnecessary work. Computer scientists have throughout the years devised baroque languages such as C++ and Java in an effort to provide programming instructions in a powerful way. It turns out, however, that the whole steps of writing a sequence of tokens, parsing that stream, and checking the syntax is unnecessary.
Everything in a computer program can be interpreted as a tree of expressions. If you’re encoding that tree in a block generated by a bracketed expression or a for loop it is not important for the computer. There is no reason why we cannot manipulate the syntax tree directly, for example, using a tree model on the screen, instead of parsing tokens used to recreate the tree every single time.
As a result, the use of a language is unnecessary in both sides: computers don’t care where the stream of bits is coming from. It could be coming from a direct binary representation or from a Java program with all variables in German.
Human beings, on the other hand, don’t necessarily need to use the language either. Although it may look like a useful feature, the existence of a language implies the manual labor of keeping a textual representation, as well as the algorithmic work of translating that representation back into a tree of expressions. The point is that, for all we care, we could just as well be moving boxes around the screen to represent variables — there is no necessity to create a textual document representing a program.
Divide and Conquer
Still, the other issue with programming languages is that it tends to divide programmers into artificial categories, one for each language or even flavor of a language. For example the only difference between a Java programmer and a C# programmer is that they use somewhat different keywords and have to program against a different run time library. The only reason C# and Java programmers think of themselves as different is that they use the concept of language to define themselves.
Being more polemic, the only difference between a C programmer and a Lisp programmer is in what their languages force them to do. A C programmer is forced by its language to write pointer-related code. While a Lisp programmer is forced to think in terms of lists of expressions (even when they’re using other data structures).
A language-less programming system, on the other hand, would avoid this kind of issue altogether by providing only the means to do work, without forcing programmers to use a pre-defined way of thinking. Whatever the form used to interact with the program, a language-less system doesn’t care if parts of the program are shaped as s-expressions or C blocks: it just combine them as needed to create a program.
In a program written in this way, using garbage collection is just a matter of plugging the right run time support, which you could get along with the system or you could buy from a third party. Instead, we erroneously consider garbage collection as a fundamental attribute of the language in use. As another example, in a language agnostic system we would would be able to create and call closures by just adding a simple module to the system, not by devising yet another language that supports closures as a first class citizen.
But the advantages don’t stop there. Without the need for a language, it also disappears the need for a compiler. Everything is such a system is already parsed and ready to use. When we combine pieces of code they already know how to glue themselves to each other, so there is no need for a linker either.
A system would regenerate a new executable in a fraction of a second, instead of going through the painful and wasteful process of language interpretation, code generation, linking. For example, what exactly is the need to recompile an entire file when we change only a single character? In a traditional language, that is entirely necessary, because you could be modifying the token “blass” to “class”, which changes entirely the meaning of the whole file. In a language-less system, this could never happen, because each transformation is related to the existing syntax tree, which is already stored in the system. Therefore, a single change like this can only have local effect in the program.
Why Such a System Doesn’t Exist?
There are several reasons, but the least important of them is technology. We have graphical capabilities in any modern desktop computer that are beyond what is necessary to implement the visualization features for such a programming environment. The main difficulty separating us from that goal is the experience we already have as programmers.
Each one of us have been trained to use textual languages as the main way of interact with computers. We have learned to use associated tools, such as grep and make, that are imperfect but that give good results if you are disciplined.
Moreover, it is satisfying to use the huge amount of code available with the existing technologies. Everyone of us have been conditioned for many years to look at what has been done in our programming language, and even reuse the code if needed.
I think that this is the main reason why visual languages have had such a hard time to establish themselves. After using such a language for a few minutes, you immediately feel that it is so much easier to go back and write yet another program in C or Java or Python. Of course, it will always be much more productive to use a tool that you’re used to.
However, we have never been able to really improve a language-less system enough to see their advantages as compared to traditional language-based systems. I believe that there will be a big jump in programming quality the day a group of people decide to develop a true language-agnostic programming system. And when programmers in general learn that they don’t need a language to create valid code they will think that we were just crazy for using, for such a long time, a concept as wasteful as that of programming language.
Photo credit: commons.wikimedia.com
Amazing a good deal of amazing knowledge.
What a information of un-ambiguity and preserveness of precious experience concerning unpredicted emotions.
I am actually grateful to the owner of this web site who has shared this
wonderful post at here.
Excellent site you’ve got here.. It’s difficult to find excellent
writing like yours nowadays. I seriously appreciate people like you!
Take care!!
Hello are using WordPress for your blog platform? I’m new to the
blog world but I’m trying to get started and create my own.
Do you need any html coding knowledge to make your own blog?
Any help would be greatly appreciated!
Hello there, just became alert to your blog through Google,
and found that it’s truly informative. I’m gonna watch out for
brussels. I will appreciate if you continue this in future.
A lot of people will be benefited from your writing.
Cheers!
Hi mates, its enormous paragraph on the topic of cultureand fully defined, keep it up all the time.
Einige unserer Links auf Gameoasis.de sind Affiliate-Links, für die wir eine Provision erhalten können, sollten sich Kunden über einen unserer Links bei einem Partner-Casino registrieren. Ja, zu den gängigen Arten gehören Bonusguthaben, Freispiele, freie Spielzeit und Cashback-Angebote.
Besuchen Sie regelmäßig Casinotestseiten und -foren,
um aktuelle Informationen über die besten Angebote zu erhalten.
Waltenberg hat Tausende von Online-Casinos, Spielautomaten und Casinospielen überprüft und verfügt
über fundierte Kenntnisse zu Boni und Spielautomaten. Egal ob Du einen Echtgeld Bonus ohne Einzahlung oder Freispiele ohne Einzahlung zur Verfügung
gestellt bekommst, es kommt am Ende immer auf die Bonusbedingungen an. Echtgeld Bonus
oder Freispiele ohne Einzahlung – was ist besser? Von wenigen Ausnahmen abgesehen, ist der Hausvorteil bei Online Roulette Tischspielen meist sehr gering, und daher
gibt es diesen Bonus im Live-Casino nicht. Wir empfehlen Dir auf jeden Fall,
mit einem Casino Bonus ohne Einzahlung zu spielen.
Neue Kunden erhalten ein gratis Guthaben oder Freispielbonus, das im Willkommenspaket inklusive ist.
Wenn Sie sich bei einer der oberen Online Casinos registrieren, erhalten Sie noch heute sofort einen gratis
Bonus oder kostenlose Freispiele. Nach der Verifizierung, oder nach Kontaktaufnahme
mit dem Kundenservice, erhalten Sie Ihren gratis Bonus oder Ihre kostenlosen Freispiele.
So erhalten neue Spieler gleich nicht nur
einen normalen Willkommensbonus mit Einzahlung sondern auch das gratis
Startguthaben.
References:
https://online-spielhallen.de/ihr-umfassender-leitfaden-zum-holland-casino-venlo-bonus-code/
I’m not sure why but this website is loading incredibly slow
for me. Is anyone else having this issue or is it a problem on my
end? I’ll check back later and see if the problem still exists.
I truly love your website.. Very nice colors & theme. Did you develop this website yourself?
Please reply back as I’m looking to create my own personal site and
want to learn where you got this from or exactly what the theme
is named. Kudos!
My partner and I stumbled over here by a different page and thought I might check things out.
I like what I see so now i’m following you. Look forward to checking out your
web page again.
Neben Gratisguthaben, sind dabei vor allem Freispiele bzw.
Ähnlich wie bei Sportwetten gibt es auch bei Online-Casinos einen sogenannten Wettbonus ohne Einzahlung.
Der Bonus kann in Form eines normalen Bonus mit Mindestumsatz
oder in Form eines Gratisspiels angeboten werden. Langfristig hat der
Wettanbieter also eine gute Chance, Kunden zu binden und so über die Zeit aus dem anfänglichen Verlust einen Gewinn zu machen.
Allerdings bist du zuvor nicht auf einen Gewinn aus den Freispielen angewiesen. Es kann auch vorkommen, dass die Casinos die Gewinne aus den Freispielen noch einmal
an Umsatzbedingungen knüpfen. Wer den besten Online Casino Bonus ohne Einzahlung sucht,
steht häufig vor der Frage Echtgeld oder Freispiele. Einige Anbieter verzichten bei einem
Echtgeld Casino Bonus ohne Einzahlung sogar komplett auf Umsatzbedingungen, während
Freispiele meist andere Regeln haben. Möglich sind Echtgeld Casino Bonus ohne Einzahlung oder Freispiele.
Du kannst Bonusjagden spielen und andere Strategien ausprobieren.
References:
https://online-spielhallen.de/spinanga-casino-erfahrungen-ein-detaillierter-bericht/
I blog often and I genuinely thank you for your content. The article has really peaked my interest.
I’m going to take a note of your site and keep checking for new details about once a
week. I subscribed to your Feed as well.
As the admin of this website is working, no hesitation very rapidly it
will be renowned, due to its feature contents.
I was suggested this web site by my cousin. I’m not sure whether this post is written by him as no one else know
such detailed about my problem. You’re incredible!
Thanks!
An impressive share! I’ve just forwarded this onto a
friend who was doing a little research on this.
And he in fact ordered me dinner because I discovered it for him…
lol. So let me reword this…. Thanks for the meal!! But yeah, thanks for spending time to discuss this topic here on your blog.
Good day! This post couldn’t be written any better!
Reading through this post reminds me of my previous room mate!
He always kept talking about this. I will forward this article to him.
Pretty sure he will have a good read. Thank you for sharing!
Hey I know this is off topic but I was wondering if you knew of any widgets I
could add to my blog that automatically tweet my newest twitter updates.
I’ve been looking for a plug-in like this for quite some time and was hoping maybe you
would have some experience with something like this.
Please let me know if you run into anything. I truly enjoy reading your blog and I look forward
to your new updates.
Pretty! This has been an extremely wonderful article.
Thank you for providing this info.
I was curious if you ever considered changing the page layout of your blog?
Its very well written; I love what youve got to say.
But maybe you could a little more in the way of content
so people could connect with it better. Youve got an awful lot
of text for only having one or two pictures. Maybe you could space it out better?
I read this paragraph fully on the topic of the resemblance of latest
and previous technologies, it’s awesome article.
Hello There. I found your blog using msn. This is a very well written article.
I will be sure to bookmark it and return to read more of
your useful info. Thanks for the post. I’ll definitely comeback.
Hi everyone, it’s my first pay a visit at this website,
and article is genuinely fruitful designed for me, keep up posting
such articles or reviews.
There’s definately a lot to learn about this issue.
I like all of the points you have made.
Write more, thats all I have to say. Literally, it seems as though
you relied on the video to make your point.
You obviously know what youre talking about, why throw away your intelligence on just posting videos to your weblog when you could be giving us something informative to read?
Hi there, after reading this amazing piece of writing i am also cheerful to share my know-how here with mates.
I’m impressed, I must say. Rarely do I come across a blog that’s equally educative
and entertaining, and let me tell you, you have hit the nail on the head.
The issue is something which not enough people are speaking intelligently about.
Now i’m very happy I stumbled across this in my hunt for something concerning this.
Thank you for the good writeup. It in fact was a
amusement account it. Look advanced to more added agreeable from you!
However, how could we communicate?
Hey There. I discovered your weblog the use of msn. That is a really neatly written article.
I will make sure to bookmark it and come back to read extra of your helpful information.
Thank you for the post. I’ll certainly return.
Heya! I’m at work browsing your blog from my new iphone 4!
Just wanted to say I love reading through your blog and look forward
to all your posts! Carry on the great work!
I loved as much as you’ll receive carried out
right here. The sketch is attractive, your authored material stylish.
nonetheless, you command get bought an nervousness over that you wish
be delivering the following. unwell unquestionably come
further formerly again since exactly the same nearly very often inside case you shield this
increase.
It is not my first time to go to see this web site, i am visiting this site dailly and get
pleasant data from here everyday.
I loved as much as you’ll receive carried out right here.
The sketch is attractive, your authored material stylish.
nonetheless, you command get bought an impatience over
that you wish be delivering the following. unwell unquestionably come further formerly again since exactly the same nearly a
lot often inside case you shield this hike.
I read this post fully on the topic of the resemblance of newest and preceding technologies,
it’s remarkable article.
Thanks for one’s marvelous posting! I certainly enjoyed reading it, you could be a great author.I will
be sure to bookmark your blog and will often come back later
on. I want to encourage you continue your great job, have a
nice evening!
This is a really good tip especially to those fresh to the blogosphere.
Short but very precise info… Appreciate your sharing this one.
A must read post!
Keep on working, great job!
Amazing things here. I am very glad to peer your post.
Thank you so much and I am having a look ahead to touch you.
Will you please drop me a mail?
Saved as a favorite, I really like your blog!
Hi there to all, it’s in fact a fastidious for me to pay a quick visit this web page, it includes important Information.
Thanks for any other magnificent post. Where else may anybody get that kind of info in such an ideal way of writing?
I have a presentation subsequent week, and I am at the search for such information.
Generally I do not learn article on blogs, but I would like to
say that this write-up very compelled me to try and do so!
Your writing style has been amazed me. Thank you, quite great post.
For Aussie players, the site fully supports AUD as both a deposit
and withdrawal currency. And yes, you can still claim a
skycrown casino no deposit bonus no matter which method you
use. Once you complete your skycrown casino login, you’ll find a massive library of games — no exaggeration. The terms on skycrown casino no deposit bonus codes are laid
out clearly.
With the mobile platform’s stability and full functionality, everyone can remain engaged whether
they are relaxing at home, out on errands, or traveling.
All slot titles utilize certified Random Number Generators (RNGs) for fair
and transparent gameplay. Slots often serve as
the backbone of any modern online casino, and Skycrown casino app shines in this
category with an extensive library. Skycrown Online acknowledges this by regularly providing incentives that appeal to various players—whether they
love extra funds, free spins, or specialized event promos.
Skycrown also highlights deposit and withdrawal limits
upfront, so individuals can plan their session accordingly without
encountering hidden obstacles. Learn how to register, claim bonuses,
discover a myriad of slot titles (including Snoop Dogg, Elvis Frog, and
Sweet Bonanza), and enjoy the benefits of a well-regulated environment.
Launched by Hollycorn N.V., Skycrown Casino invites Australian players to experience premium online gaming.
With robust security measures and a Curaçao license,
Sky Crown Casino provides a trustworthy and enjoyable gaming experience for Australian players.
Players can manage their accounts and play their favorite games directly
through their browsers with no compromise on quality.
The “Info” section contains all essential details about the casino’s
operations, ensuring players have access to crucial resources and support.
These games allow players to bet on multiplying odds before the round crashes.
Crash games at Sky Crown Casino provide fast-paced, high-adrenaline gaming experiences.
References:
https://blackcoin.co/22_all-slots-casino-1500-bonus-2500-loyalty-points_rewrite_1/
Excellent blog here! Also your website loads up fast! What
host are you using? Can I get your affiliate link to your host?
I wish my site loaded up as quickly as yours lol
This design is spectacular! You obviously know how to keep a reader entertained.
Between your wit and your videos, I was almost moved to start my own blog (well, almost…HaHa!) Fantastic job.
I really loved what you had to say, and more than that, how you presented it.
Too cool!
Hurrah, that’s what I was seeking for, what a information! present
here at this website, thanks admin of this web page.
I’m curious to find out what blog system you’re utilizing?
I’m having some minor security issues with my latest website and I’d like to find something more safe.
Do you have any recommendations?
Hey there would you mind stating which blog
platform you’re using? I’m going to start my own blog in the near future but I’m having a hard
time choosing between BlogEngine/Wordpress/B2evolution and Drupal.
The reason I ask is because your design seems different then most blogs and I’m looking for something
unique. P.S Sorry for getting off-topic but
I had to ask!
I am regular reader, how are you everybody? This article
posted at this website is genuinely pleasant.
The hotel’s grand entrance wowed me, and the dining options were top-notch.
I experienced luxury and sophistication throughout my stay at the
casino hotel. With 160 tables, electronic machines, and private salons,
there’s plenty of room to enjoy the VIP gaming
experience. However, once approved it will include a 350-room hotel, featuring suites and luxury apartments, signature restaurants,
bars, nightclubs, high-end retail outlets, pool
and spa facilities, conference rooms, and VIP gaming facilities.
So, you can conveniently enjoy the games without worrying about carrying physical
cash. Crown Sydney offers a plethora of culinary delights,
each more tempting than the last. The casino collaborates with local authorities to maintain safety standards,
ensuring a secure environment for visitors.
While there are no exclusive games, the casino offers a variety
of popular options found in many casinos. With an array of table games, including innovative and new offerings; the latest in electronic gaming; and the possibility of providing ongoing poker action 24/7,
the Crown Sydney could become one of Australia’s finest casinos.
Offering stunning and inspiring views of Sydney, access to the best
possible gaming and entertainment experiences, and first-rate restaurants, bars, and nightclubs, it’s projected to be a primary destination for those who
desire the complete casino experience. Discover premium entertainment at Crown Casino — Australia’s leading destination for world-class gaming, luxury hotels,
fine dining, and unforgettable experiences. With its
strategic locations in Sydney, Brisbane, and the Gold Coast, The Star Casino
offers a unique blend of gaming, dining, and entertainment options that cater to a wide range of preferences and tastes.
References:
https://blackcoin.co/online-gambling-in-sydney-a-comprehensive-guide/