Regarding the survey: What's your least favourite of these languages to code in?
-
For me Python syntactic white space?
While in general I agree with you, as a language designer it is easy to fall into the trap of saying that spaces and page layout don't matter. This makes a fragment like:
i n t e g e r p r o c e d u r e f a c ( n ) ; v a l u e n ; i n t e g r n ; f a c : = i f n = 0 t h e n 1 e l s e n \* f a c ( n - 1 ) ;
a legal Algol program. The truth is probably somewhere in between. (Algol program taken from D.W.Barron - An Introduction into the Study of Programming Languages)
Mircea
-
For me Python syntactic white space?
-
Marc Clifton wrote:
it's an interesting realization (to me at least) that my dislike of a language is often based on my dislike of the previous coder's code.
Admit it Marc, you just don't like anyone's code but your own. :-D I really, I wouldn't fault you for that. I'm the same way. I'm sure most are. And yet we can't all be right at the same time. Hmmmm... :laugh:
-
For me Python syntactic white space?
-
Using white space as part of the syntax is a huge potential source of errors, one that should simply not exist.
Most languages require a single space between types and variable names though. Captain Pedantic strikes again.
I’ve given up trying to be calm. However, I am open to feeling slightly less agitated.
-
While in general I agree with you, as a language designer it is easy to fall into the trap of saying that spaces and page layout don't matter. This makes a fragment like:
i n t e g e r p r o c e d u r e f a c ( n ) ; v a l u e n ; i n t e g r n ; f a c : = i f n = 0 t h e n 1 e l s e n \* f a c ( n - 1 ) ;
a legal Algol program. The truth is probably somewhere in between. (Algol program taken from D.W.Barron - An Introduction into the Study of Programming Languages)
Mircea
On the other hand... allowing the developer to format his code as he likes is better than requiring the developer to format his code a certain way. For the most part, C-like languages don't even require line breaks, which makes code generation much easier.
-
On the other hand... allowing the developer to format his code as he likes is better than requiring the developer to format his code a certain way. For the most part, C-like languages don't even require line breaks, which makes code generation much easier.
True enough! See the bad example of Go where you must place the brace on the same line as
if
andelse
.Mircea
-
For me Python syntactic white space?
-
It occurs to me that my least favorite programming language is not actually determined by the language but rather by the coders writing awful code in that language. Even C# fits the "least favorite language" with some of the crap I've seen. I suppose I'm overthinking the question, but it was interesting when I started writing pure JavaScript for some personal projects and discovered I didn't hate it. I still prefer TypeScript, but my loathing of JavaScript was actually because of the code I had to touch that other people wrote. Functions that were a couple thousand lines long. Nested functions. Nested promises. Absurdly complex business logic implemented on the front-end with dozens of nested if-else. The way I was writing Javascript made working with Javascript a pleasant process. Anyways, it's an interesting realization (to me at least) that my dislike of a language is often based on my dislike of the previous coder's code.
Latest Article:
Create a Digital Ocean Droplet for .NET Core Web API with a real SSL Certificate on a DomainAgreed. 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;
-
True enough! See the bad example of Go where you must place the brace on the same line as
if
andelse
.Mircea
Mircea Neacsu wrote:
example of Go where you must place the brace on the same line as if and else.
Hmm, apparently I am never going to use that language. X|
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment "Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst "I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
-
Mircea Neacsu wrote:
example of Go where you must place the brace on the same line as if and else.
Hmm, apparently I am never going to use that language. X|
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment "Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst "I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
Well, it has features that make it a compelling choice in some cases. And to heck with it: I wrote programs in FORTRAN where you had to start in column 7 and place continuation mark in column 6. If I survived that, I'm sure going to survive a misplaced brace :D
Mircea
-
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. -
Well, it has features that make it a compelling choice in some cases. And to heck with it: I wrote programs in FORTRAN where you had to start in column 7 and place continuation mark in column 6. If I survived that, I'm sure going to survive a misplaced brace :D
Mircea
That's a tough one, you sir, have more patience than me. :)
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment "Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst "I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
-
Marc Clifton wrote:
it's an interesting realization (to me at least) that my dislike of a language is often based on my dislike of the previous coder's code.
Admit it Marc, you just don't like anyone's code but your own. :-D I really, I wouldn't fault you for that. I'm the same way. I'm sure most are. And yet we can't all be right at the same time. Hmmmm... :laugh:
dandy72 wrote:
Admit it Marc, you just don't like anyone's code but your own.
99% true!
Latest Article:
Create a Digital Ocean Droplet for .NET Core Web API with a real SSL Certificate on a Domain -
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:
Academic languages that are documented using obscure or in-joke vocabulary: functional programming's "monad", for example
But why, ["a monad is a monoid in the category of endofunctors, what's the problem?"](https://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html) Also, [Dylan Beattie and the Linebreakers - Monads (Live at NDC Oslo 2019) - YouTube](https://www.youtube.com/watch?v=BoJGIqyriCc)
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
-
Mircea Neacsu wrote:
example of Go where you must place the brace on the same line as if and else.
Hmm, apparently I am never going to use that language. X|
"the debugger doesn't tell me anything because this code compiles just fine" - random QA comment "Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst "I don't drink any more... then again, I don't drink any less." - Mike Mullikins uncle
While I've never used Go and prefer opening brace on it's own style; the only thing I hate worse than Java written in accordance with the Java Style Guide (or WT:elephant: they call it) is Java written as if it was C#. X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| X| &nb
-
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;
-
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?
-
Gary R. Wheeler wrote:
Academic languages that are documented using obscure or in-joke vocabulary: functional programming's "monad", for example
But why, ["a monad is a monoid in the category of endofunctors, what's the problem?"](https://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html) Also, [Dylan Beattie and the Linebreakers - Monads (Live at NDC Oslo 2019) - YouTube](https://www.youtube.com/watch?v=BoJGIqyriCc)
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
Dan Neely wrote:
But why, "a monad is a monoid in the category of endofunctors, what's the problem?"
:laugh:
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) :elephant:ing hates that sort of thing.
Software Zen:
delete this;