Live data from Hacker News

Programming Language Checklist

famicol.in

11–20 of 169 posts

Re: Programming Language Checklist

#11
>> You appear to believe that: Syntax is what makes programming difficult

This is exactly the problem. People spend so much effort looking for better syntax that they miss the most important part of programming. It's about design and structure, the syntax doesn't really matter at all. I don't even care if it's dynamically typed or statically typed or functional or not. A bad developer will produce bad code no matter the language is. I've seen this over and over.

It's not so different from human languages. It doesn't matter what the language is; if you know it well enough, you can write a great novel with it... But only if you're a good author to begin with.

A bad author is not going to start learning French because they couldn't write a successful novel in their native English... Instead, they will work on their storytelling because they know that they are at fault, not the language.

I've written code in many languages and I can produce good software with any of them. The language I'm most familiar with is the one which allows me to work faster, but it has basically no effect on quality of the code.

For example, in the past, I've written Golang code after learning it a couple of days before for a job interview and the interviewer (a well known developer and founder of a popular startup at the time) commented that it was one of the best designed/structured samples he has seen. It took me a long time to write it because I had to look up stuff all the time but it seems to have had little effect on the quality of the code.

People have to stop blaming tools and start blaming themselves. It takes over a decade of intense work (nights and weekends too) of constant self-blaming and adjustments to become good at coding. That's if you have natural talent for it. If you're not a natural then you have to be even more patient.

Re: Programming Language Checklist

#12
post #8

[ ] You require the compiler to be present at runtime [ ] You require the language runtime to be present at compile-time The guy never heard of Lisp so I wouldn't pay much attention to this anyway.

I think those were included specifically to poke fun at Lisp. The list isn’t meant to be taken very seriously.

I also chuckled at the '[ ] "multi-paradigm"' and immediately thought of lisp since it's one of the only languages that's ever had a reason to lay claim to that.

If you think about it, lisp is really just the smallest amount of higher-level PL primordial soup you can give to a programmer.

Re: Programming Language Checklist

#13

>> You appear to believe that: Syntax is what makes programming difficult This is exactly the problem. People spend so much effort looking for better syntax that they miss the most important part of programming. It's about design and structure, the syntax doesn't really matter at all. I don't even care if it's dynamically typed or statically typed or functional or not. A bad developer will produce bad code no matter…

,,I've written code in many languages and I can produce good software with any of them. ''

If you write code yourself and view that as the main advantage, type systems matter less.

But when working in a team having statical typing as a written contract between people can help development substantially.

Re: Programming Language Checklist

#14
I got an idea for a language where the code in the file format is some intermediary language, which you write with an editor plugin that makes it more human-readable.

The editor plugin (in contrast to existing language plugins) also translates the error msgs back to the human-readable code.

Just an idea, but I could not get it to fit in the questionaire :)

Re: Programming Language Checklist

#15

>> You appear to believe that: Syntax is what makes programming difficult This is exactly the problem. People spend so much effort looking for better syntax that they miss the most important part of programming. It's about design and structure, the syntax doesn't really matter at all. I don't even care if it's dynamically typed or statically typed or functional or not. A bad developer will produce bad code no matter…

> It's about design and structure, the syntax doesn't really matter at all.

While it’s true that you could write any program in almost any syntax, that does not mean that syntax isn’t important. Syntax is the UI if a programming languages and as with any UI, UX matters. (You can accomplish tasks with bad UI’s too but that doesn’t mean it’s pleasant or efficient) Syntax shapes how you think in a language and how you view or use the semantics. We have many languages which are semantically essentially the same and only differ in syntax and people prefer one over the other often for different purposes. Ergonomics are important.

Hell, many people won’t even give languages whose syntax they don’t like a chance... (don’t like lisp parentheses? Python significant whitespace? Forth’s stack shenanigans? J/k/apl/Perl’s keyboard-mash-symbols? Etc)

Re: Programming Language Checklist

#17
post #4

Of course, every successful language could be roasted with this, too. It's a cute post but if there were a simple checklist for creating a successful language, every language designer would just do that.

Bjarne Stroustrup, creator of C++, is often quoted with this statement: "There are only two kinds of languages: the ones people complain about and the ones nobody uses."

I suppose, scathing criticism in that respect is the highest form of praise.

Re: Programming Language Checklist

#18

>> You appear to believe that: Syntax is what makes programming difficult This is exactly the problem. People spend so much effort looking for better syntax that they miss the most important part of programming. It's about design and structure, the syntax doesn't really matter at all. I don't even care if it's dynamically typed or statically typed or functional or not. A bad developer will produce bad code no matter…

> the syntax doesn't really matter at all.

Somehow it does though: I find even j/k/apl easier to parse in my head than Ruby; somehow the ruby syntax gives me a headache. Not sure why that is, as I wrote a lot of code in it, but I find Python, C#, F#, Haskell or Kotlin far nicer to read and write. And, even though I understand the semantics and can write code in Ruby, if I have a choice, I would never touch it again. And that's only syntax/idioms. I find JS also quite rancid syntactically, but not as repulsive as Ruby.

And I know other people have this with different (or the same) languages as well; like someone else said, most people (even on HN) won't even try languages with a 'weird' syntax, even if they are proven to be more productive in some cases relevant to them. I know quite a lot of Lisp-y coders (most of them do Clojure these days) and they don't understand how/why you would ever use anything else. Most people here (maybe including you) have the inverse of that. As there are blazingly fast Lisp/Schemes on every platform, why are you using Go or another syntax than the basic AST? And yet you are and most of us are. If syntax does not matter, why have any syntax at all?

Re: Programming Language Checklist

#19

>> You appear to believe that: Syntax is what makes programming difficult This is exactly the problem. People spend so much effort looking for better syntax that they miss the most important part of programming. It's about design and structure, the syntax doesn't really matter at all. I don't even care if it's dynamically typed or statically typed or functional or not. A bad developer will produce bad code no matter…

,,I've written code in many languages and I can produce good software with any of them. '' If you write code yourself and view that as the main advantage, type systems matter less. But when working in a team having statical typing as a written contract between people can help development substantially.

I am still more productive with a type system, also on my own. When projects reach a certain size, it just helps a lot in keeping things working and clean long term. This 'contract' can be with your former or future self, and, in my experience, helps a lot.
Post reply on HN