Live data from Hacker News

Because It's Not Fun Enough: why languages fail

bytecode.news

121–130 of 146 posts

Re: Because It's Not Fun Enough: why languages fail

#121
post #17

Yes to all that but still, my pet theory is that languages rise on one or two "killer features" that move the entire industry forward, and not the overall cuteness or lovability. I can suggest a list of one killer feature per each popular language, i.e. things that these languages were the first to introduce and influence many successors: C: extreme conciseness C++: implicit destructors / RAII Python: removed curly b…

this is just survivorship bias. I bet you 1000 dollars that there exists hundred languages that are more useful and well thought than those languages you listed, but still nobody cared and it died.

I believe the reason lies entirely outside of the language itself. let just say, the is a circle, a society (of programmer and related peopel) that decide that a language can be popular or not. if your language get picked, then it will be popular, if not, then good luck.

you can deduce easily what the criteria (to be picked) from the list of languages you mentioned: 1. if it does not come from US, good luck (ruby is an exception but it didn't sail until some americans decide to boost it) 2. if the language authors do not speech english well, good luck (I mean, sure if you advertise your language more more people will pick it) 3. if you satisfy 2 previous conditions, if you do not play along well with those people in the circle, then good luck (D is a good example of this) 4. even your programming language is dog shit, as long as you know the people in the circle, they will promote it for you. bonus point: if you allow the language to be directed as they want, then it will be extra smooth.

tl;dr: it is mostly politic how a programming language gets popular.

Re: Because It's Not Fun Enough: why languages fail

#122

Earlier quoted context omitted.

Node.js came way before Go. If you fact-check with AI, it will say "Go was invented in 2009" but anyone who has been around knows it's more like ~2013. Node.js was 90% of the inspiration for Go to exist in the first place. Swift also would have never came about if it wasn't for people doing iOS way better in JavaScript. SwiftUI is basically React conceptually

Technically 2007, but Go 1.0 was in 2009 when the Windows compiler was finally released, Go from 2007 till 2009 was Linux / Unix first. I don't recall when Mac came, but I would not be surprised if very quickly given that GCC worked just fine on Mac at the time. The Go community made Go work on Windows leading up to 2009, the core maintainers of Go did not make the Windows build themselves, they didn't care about Win…

Haha, try 2013. You were not around then ;)

Go 1.0 was released in 2013 (I don't even think the "official date" of March 28, 2012 is correct, or at least, nobody had heard of it).

Apple doing Swift and Google doing Go was basically in response to Node.js

> but I distinctly remember learning Go on Windows in 2009 and building web apps

Very highly doubt it

Re: Because It's Not Fun Enough: why languages fail

#123
post #94

Earlier quoted context omitted.

yes and no. You are correct the REPL provides more interactivity. However the downside is you can break something that used to work while make something else work. There is no reason you can have a REPL and unit tests in the same. Every change results in running all the tests. (of course most changes are syntax error - just "if foo()" is 7 syntax errors. ) I've seen various attempts of this over the years, but quickl…

>I've seen various attempts of this over the years, but quickly your code becomes more complex than the computer can run while you type and you fall back to running most of the tests after in some way. That does not match my experience with lisp.

My last experience with lisp was assignments in college which are too small to count as anything more than a toy problem.

For real world code in other languages I've worked with the complexity of the problems demands so much code that the REPL cannot keep up.

Re: Because It's Not Fun Enough: why languages fail

#124

Earlier quoted context omitted.

Technically 2007, but Go 1.0 was in 2009 when the Windows compiler was finally released, Go from 2007 till 2009 was Linux / Unix first. I don't recall when Mac came, but I would not be surprised if very quickly given that GCC worked just fine on Mac at the time. The Go community made Go work on Windows leading up to 2009, the core maintainers of Go did not make the Windows build themselves, they didn't care about Win…

Haha, try 2013. You were not around then ;) Go 1.0 was released in 2013 (I don't even think the "official date" of March 28, 2012 is correct, or at least, nobody had heard of it). Apple doing Swift and Google doing Go was basically in response to Node.js > but I distinctly remember learning Go on Windows in 2009 and building web apps Very highly doubt it

I mixed up when Go had its first release for windows and 1.0 but that somehow means I wasn't around for that? Thanks for knowing about my life more than I do somehow? My memory is not what it used to be but that doesn't invalidate my personal experiences in 2009.

I started college in 2011 and I was telling the professors about it before it was popular, Vitess was in 2010, used in production by YouTube. JavaScript predates NodeJS even so.

I did use Linux in 2009 so I could be misremembering when it was ported, after all this was over a decade and some change ago.

Edit:

https://go.dev/blog/1year

My overall argument still stands, in production at YouTube by 2010, by 2013 we already had Docker in the works, when you say it "just came out" but many people were eyeballing Go and waiting for it to be fully on Windows.

So 2010 they were talking about the Windows port, guess I blended the years a bit, everything before my college years is all smashed together for me.

Re: Because It's Not Fun Enough: why languages fail

#125

To add a few more exotic cases that affect things. Keep in mind that by default new languages fail. To succeed, many things have to all go right at once, and this implies that therefore there is not one single element that, if gotten right, means the language will therefore be successful (it's rather the opposite: If even one of the key factors is wrong, it'll probably fail). * It's just a guesstimate, but one of tho…

On scala, I think there were several factors that led to it stalling out in the mid to late aughts. I am not convinced the community was the root cause. I think more significant was the scala 3 transition. When they were still near the peak of the hype cycle, the core team decided to spend more than five years rewriting the compiler. In my opinion, while there were good reasons to do a rewrite, they focused on the wrong things if widespread adoption was the goal. The biggest problems with scala were compiler and sbt performance, as well as related dev tooling. The new scala 3 compiler had to first approximation equivalent performance to scala 2 and they did nothing to improve the build system. In the meantime, other languages that overlapped with scala in various ways rose up: kotlin, typescript and rust come to mind. The unique value proposition was diluted, and the poor tooling experience persisted.

Now, that's not to say that the community was not also a factor in scala losing momentum. I agree with your take. At the same time, that elitist community was also building cool and useful stuff that significantly improved upon what was available in other ecosystems so I think it was a double edged sword. Even today, there are things that are easily done in scala that are useful, elegant and impossible to do directly in most of its peer languages. It may never have reached truly mainstream ubiquity but I think with better technical decision making, the language could have remained very strong its niche.

Re: Because It's Not Fun Enough: why languages fail

#126
Agreed. I think people tend to forget that:

you do not have to pick a single language. it is trivial to use another language just for that single library. there are many way to communicate, it is not like method calling is always the hard requirement

since you do not have to choose a single language, the killer feature of that language is mostly useless, even if there is no other language that have the similar feature, people would just write a some glue code to bridge it with their main codebase. and usually, there is no such thing at unique feature that only that a single language can have. sure, it can be achieved easier in that language for some use case, but even so, a single bridge file is probably enough. aka nobody would invest in your language.

writing software is mostly using other people libraries anyway. the thing we write the most is some common business logic, thus the syntax is extra important, or rather, the DX is the most important thing. heck if the experience is great enough I can throw thousands hours to write the libraries/frameworks myself, it is (usually) not that hard.

it always turns me off seeing a new introduced language that syntax wise is a carbon copy of rust or C. no thank you, if you not even want to think about the syntax, why should we believe that you can deliver something truly innovative?

Re: Because It's Not Fun Enough: why languages fail

#127

Earlier quoted context omitted.

Haha, try 2013. You were not around then ;) Go 1.0 was released in 2013 (I don't even think the "official date" of March 28, 2012 is correct, or at least, nobody had heard of it). Apple doing Swift and Google doing Go was basically in response to Node.js > but I distinctly remember learning Go on Windows in 2009 and building web apps Very highly doubt it

I mixed up when Go had its first release for windows and 1.0 but that somehow means I wasn't around for that? Thanks for knowing about my life more than I do somehow? My memory is not what it used to be but that doesn't invalidate my personal experiences in 2009. I started college in 2011 and I was telling the professors about it before it was popular, Vitess was in 2010, used in production by YouTube. JavaScript pre…

In 2010 I was doing Flash/AS3 (professionally) and Wordpress sites, but yeah, maybe.

I don't doubt it has a searchable history back to 2010.

Re: Because It's Not Fun Enough: why languages fail

#128

Heh, the article is kind of negative about Haskell's "success", but fun is exactly the reason why I still prefer Haskell over all other languages.

What kind of workplaces you people have if you can code "for fun"? I am tired of only ever being gauged by immediate usefulness. You hiring? Also when you emphasize "exactly", you are not giving any actual reasons.

I code for fun and income. I don't stay at engagements where I can't invest personally in what I'm doing, and I don't hire people who don't enjoy what they're doing as they're doing it. Anything else feels punitive for everyone involved.

Re: Because It's Not Fun Enough: why languages fail

#129
post #94
post #79

Earlier quoted context omitted.

Unit testing doesn't provide the level of interactivity a REPL does. A REPL lets you see the output of parts of an unfinished function based on the running program's state. If you've already thought out the whole program before you start writing it, that may not be as valuable. In my experience, software often isn't that way and the ease of exploration a REPL and long-running process provide are unmatched.

yes and no. You are correct the REPL provides more interactivity. However the downside is you can break something that used to work while make something else work. There is no reason you can have a REPL and unit tests in the same. Every change results in running all the tests. (of course most changes are syntax error - just "if foo()" is 7 syntax errors. ) I've seen various attempts of this over the years, but quickl…

REPL isn't just more ineractive, it's open ended.

I.e. you could execute a unit test in a REPL (after e.g. loading the test), but you can't run a REPL in a unit test - you can debug a test and maybe do some REPL like things, but, it's not the same at all...

You also can't write a unit test in a unit test, you can in a REPL.

Heck, an AI chatbot is a (non deterministic) REPL (it reads, evaluates, and prints something)...

Like others were saying, they are different, i.e. nothing at all alike, tests do not obviate REPLs...

Re: Because It's Not Fun Enough: why languages fail

#130

Earlier quoted context omitted.

I mixed up when Go had its first release for windows and 1.0 but that somehow means I wasn't around for that? Thanks for knowing about my life more than I do somehow? My memory is not what it used to be but that doesn't invalidate my personal experiences in 2009. I started college in 2011 and I was telling the professors about it before it was popular, Vitess was in 2010, used in production by YouTube. JavaScript pre…

In 2010 I was doing Flash/AS3 (professionally) and Wordpress sites, but yeah, maybe. I don't doubt it has a searchable history back to 2010.

Anyway, my memory is pretty bad, the early 2010s are a blurb and sometimes I mix up 2009 with the early 2010s. I love JavaScript and hate it, because I know how quirky it is and can be, I'm glad something like Go and Node came along, we were all stuck with Java or C# (which arguably became a lot better in recent years). Now we've got many more options.
Post reply on HN