Algol (1958) is the spiritual parent language of the C/C++/C#/Java family. It introduced the accursed "int x" syntax which Niklaus Wirth tried to undo with Pascal and other designs. Yet the notation persists and perpetures a 60-year confusion around types and values.
-
-
If we support overloading functions on constants, in a Haskell pattern-matching style like "factorial(int i)=i*factorial(i-1); factorial(0)=1;", what does "f(int)=0" mean? Is it saying "f of the type int is zero" or "f of any integer is zero"? See C++ template specialization...
-
It's tempting to say these are edge cases, but programming languages must scale. That's their entire purpose! If we can't write scalable abstractions on types and values, then libraries devolve into layers of workarounds like C++ std, rather than bundles of features.
End of conversation
New conversation -
-
-
I get your point
@TimSweeneyEpic, that prog. languages must scale and evolve well. That said, I would question the confusing "int<a,b> x" and not "int x". After all, "int x" is much more common and needs to be short, simple & intuitive even to non-programmersThanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
In the end, for anything that is meant to evolve, I think it doesn't matter much how you define basics but how you stick to a coherent design philosophy. For ex, generics & lambdas introduced confusing out-of-place constructs imho.
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
Thanks for the exchange! I am a huge fan of your work and of UE4! Glad to be among your followers on Twitter!
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
This points out that the function definition/declaration syntax of C is absolutely crazy, which is the real problem here.
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.