Over the decades, numerous software system architectures have emerged which require invocations across subsystems to be done via message-passing instead of programmatic interface method calls. Such architectures are so common that many programmers have come to regard message-passing as an end in and of itself, oblivious of the fact that it is nothing but a (poor) technical mechanism for accomplishing a certain architectural goal.
2022-12-18
2022-12-11
Intertwine
Abstract
A mechanism is described for automatically converting method invocations of
any programmatic interface into a single-method normal form and
converting back to invocations of the original interface, so that
general-purpose operations can be performed on the normal form without
explicit knowledge of the interface being invoked. Implementations are
provided for C# and for Java.
2022-08-16
On Visual Programming Languages
Logos of various visual programming languages |
This post is intended as support material for another post of mine; see michael.gr - The Deployable Design Document.
The idea of creating software using visual tools has existed ever since the first aspiring programmer was bitterly disillusioned by discovering that programming almost exclusively entails writing lots of little text files containing nothing but boring and cryptic text.
2022-07-16
A Programming Language
"Coding Software Running On A Computer Monitor" by Scopio from NounProject.com |
Abstract
My thoughts and notes on how I would like a new programming language to look like.
The goals of the language are:
- Simple and elegant. (So that it is suitable for the academia.)
- Expressive. (So that it is suitable for experienced programmers.)
- Consistent. (So that it is attractive to developer teams.)
- Guiding. (So that it promotes best practices.)
- Fast. (So that it is suitable for high performance computing.)
- Lean. (So that it is suitable for resource-constrained computing.)
Summary of language characteristics
2021-10-04
What is wrong with Scala
This is part of a series of posts in which I am documenting what is wrong with certain popular programming languages that I am (more or less) familiar with. The aim of these posts is to support a future post in which I will be describing what the ideal programming language would look like for me.
I will be amending and revising these texts over time.
What is wrong with C#
This is part of a series of posts in which I am documenting what is wrong with certain popular programming languages that I am (more or less) familiar with. The aim of these posts is to support a future post in which I will be describing what the ideal programming language would look like for me.
I will be amending and revising these texts over time.
What is wrong with Java
This is part of a series of posts in which I am documenting what is wrong with certain popular programming languages that I am (more or less) familiar with. The aim of these posts is to support a future post in which I will be describing what the ideal programming language would look like for me.
I will be amending and revising these texts over time.
What is wrong with C++
This is part of a series of posts in which I am documenting what is wrong with certain popular programming languages that I am (more or less) familiar with. The aim of these posts is to support a future post in which I will be describing what the ideal programming language would look like for me.
I will be amending and revising these texts over time.
2011-12-31
C# Bloopers
Please do not get me wrong; C# is awesome. It is the language of my choice, even though I am pretty well versed in C++ and Java. That having been said, it cannot be denied that C# has its share of flaws, too. In this series of posts I am documenting some of them, in no particular order.
Also please note that many of the issues described herein are Visual C# bloopers, not C# bloopers in general.
C# Blooper №1: No warnings about uninitialized readonly members when the class is public and the member is public, protected or protected internal.
C# Blooper №2: No warnings about accessing uninitialized members.
C# Blooper №3: No warnings about fields having already been initialized.
C# Blooper №4: Lame/annoying variable scoping rules, Part 1
C# Blooper №5: Lame/annoying variable scoping rules, Part 2
C# Blooper №6: No warnings about unused parameters.
C# Blooper №7: No warnings about unused private methods.
C# Blooper №8: No warnings for conditions that are always true/false
C# Blooper №9: Annoying case statement fall-through rules.
C# Blooper №10: Switch statements are not properly formatted.
C# Blooper №11: Zero to Enum conversion weirdness
C# Blooper №12: 'Where' constraints not included in method signatures
C# Blooper №13: C# Blooper №13: Stack and Queue do not implement ICollection
C# Blooper №14: Weird / annoying interface method visibility rules.
Stay tuned, there is more to come.
-