|
I bet you break your eggs on the big end too.
|
|
|
|
|
I don’t even like my code a few months on!
If you can't laugh at yourself - ask me and I will do it for you.
|
|
|
|
|
dandy72 wrote: Admit it Marc, you just don't like anyone's code but your own. 99% true!
|
|
|
|
|
Jean-Paul Sartre: “Hell is other peoples code !”
FTFY
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
|
|
|
|
|
Agreed. I've never done a serious project where I reached the end and hated the programming language used.
There have been a few I hated the development environment. IBM's VisualAge for C++ and Qt Creator are two examples that come to mind. VisualAge stored the visuals and source code in a data base that corrupted itself regularly and was unrecoverable. Qt Creator's build system was incompetent (incontinent as well, but I digress).
That said, there are languages or language features I probably wouldn't like:
- Significant white space: Python and older FORTRAN's
- Academic languages that are documented using obscure or in-joke vocabulary: functional programming's "monad", for example
- Languages whose designer hated commonly-used syntax in mainstream languages and decided they were going to fix the problem;
:= for assignment in Pascal and Ada - Syntactic sugar that hides logic: C#, I'm looking at you
Software Zen: delete this;
|
|
|
|
|
Gary R. Wheeler wrote: := for assignment in Pascal and Ada
Contrariwise, that eliminates the issue in C-like languages wherein a developer types a single = when a double = was intended.
In my opinion, an unaccompanied = should be a syntax error.
|
|
|
|
|
Hmm. My point of view is that assignment is a more common operation than comparison for equality, so it should therefore require fewer characters to express.
FWIW, I've always thought that allowing assignment in the 'C' if statement was a serious design flaw in the language.
Software Zen: delete this;
|
|
|
|
|
Gary R. Wheeler wrote: a serious design flaw in the language.
Nah, nah, it's a strength...
How about the comma operator? Ever use it?
|
|
|
|
|
PIEBALDconsult wrote: How about the comma operator? Ever use it? Hmm. While I've obviously used it, I've never found a problem that was best solved with a user-defined comma operator. That strikes me as 'clever', and the poor schmuck who has to maintain my stuff over the coming years (namely me) ing hates that sort of thing.
Software Zen: delete this;
|
|
|
|
|
::= is the only solution 
|
|
|
|
|
|
I get the joke but why not ≔
Seriously now, I think it's a shame the only thing that hasn't changed in 40+ years of programming is the keyboard. We are stuck to the same limited set of characters that our ancestors put on a typewriter.
Oops! seems I'm ranting again
Mircea
|
|
|
|
|
I would vote for := , I used Pascal a bit back in the day.
Mircea Neacsu wrote: limited set of characters that our ancestors put on a typewriter
Yet several languages allow Unicode now. Oh, and don't forget C's trigraphs. 
|
|
|
|
|
Don't expect the compiler to interpret the Unicode symbols identically with the digraphs and trigraphs, though. Not even the monographs, such as × for multiplication.
I never tested out the limits for legality of unicode characters in e.g. C#. Even 7-bit ISO 646 ("ASCII", for those across the pond) has characters not legal in identifiers. Which characters in the full Unicode set are allowed in identifiers? Checking it out by trial and error takes more time than I am willing to spend!
|
|
|
|
|
Btw. I don't get it....
But "::=" means at least in EBNF something like 'definition'
|
|
|
|
|
Quote: Btw. I don't get it....
Piebald, jokingly, came up with the idea of ∴ (the math sign for "therefore" used in logical proofs) instead of the assignment operator. I proposed (half jokingly) to use ≔ (U+2254), the colon equal sign used by Algol, Pascal and a few other languages.
Mircea
|
|
|
|
|
I like things to come in logical order, so my favorite is =:
A + B =: C, or "Add A and B. Then store it in C" is far better than
C := A + B: "Assign to C ... just wait a second, I have to calculate it first ... Add A and B. I hope you remember what we were going to do with it, as we said a while ago before we started calculating the expression ..."
I programmed for a few years in a proprietary language using =:, and came to love it. It also had a half-swap operator: As in many languages, you could carry the result value assigned to C on, so the same value can be assigned to D and E: A+B =: C =: D =: E. Using :=: the old value of C was carried on. So you could e.g. link in a new element at the head of the list by NewElt =: Head :=: NewElt.Next. This comes far more natural when you read the code left to right, rather than skipping back and forth, as you have to when starting the statement with what you will be doing last.
|
|
|
|
|
Interesting! I've never seen those operators in a general use language but I can see their use. The closest thing I've seen to your =: operator was the verbose:
ADD a TO B GIVING c As a side note, only the ≕ (U+2255) is currently included in the Unicode standard.
Mircea
|
|
|
|
|
Mircea Neacsu wrote: We are stuck to the same limited set of characters that our ancestors put on a typewriter. Try APL.
|
|
|
|
|
APL is the exception that proves the rule. The one language that wanted to break the mold and do things differently has a following of... sorry can't see anybody around here
Together with LISP and FORTH, APL proves that revolutionary concepts gain very little traction among lemmings (sorry, I mean no disrespect for the rodents).
Mircea
|
|
|
|
|
Mircea Neacsu wrote: sorry can't see anybody around here You can count me as one. I don't have any task where I can use it for some "serious" purpose, but it was fun to play around with. At the moment, I don't have an APL interpreter available (except for one running under DOS, but that's not the thing for me). Buying a commercial one is too expensive for a play toy. And APLs of today have experienced the same feature creep as most other languages, making it a far more messy language than the pure APL I learned in my youth.
|
|
|
|
|
|
Dan Neely wrote: But why, "a monad is a monoid in the category of endofunctors, what's the problem?"
Software Zen: delete this;
|
|
|
|
|
From the first link:
Quote: 1964 - John Kemeny and Thomas Kurtz create BASIC, an unstructured programming language for non-computer scientists.
1965 - Kemeny and Kurtz go to 1964.
Lots of other hilarious stuff!
"Go forth into the source" - Neal Morse
"Hope is contagious"
|
|
|
|
|
Yup, it's a classic. Really kinda wish he'd update it for the last decades fun.
Did you ever see history portrayed as an old man with a wise brow and pulseless heart, weighing all things in the balance of reason?
Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful?
--Zachris Topelius
|
|
|
|