Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This has nothing to do with a language flavor though, cause it’s coercion rules at play here, which could be done right and were (I believe) ok in Java.

Lisps in browsers of that time would suffer from the same idea, which is “let’s make relaxed/ambiguous rules for noob script kids and cool one-liners”. Which is a mistake that many people made back then (perl, php, sh). Anything that has a potential for growth must have strict typing and non-funny coercion from the beginning.

It’s this naive idea that ruined whole ecosystems.



Without making it easy for people to get started, it’s unclear what scale would have been achieved during critical days when things were growing. No one could have predicted back then what the web would become, nor the need for full app development on it (things like flash and Java applets seemed more like the way that would go).

Why would you want to cut off normal people from attempting to communicate to join a community that was linking humanity together for the first time? This strikes me as elitist. Proper programmers with years of experience shouldn’t be the only ones allowed in.

We have “use strict;” for “serious” devs.


There are levels to this. You can make it harder by forcing them to adhere to some boilerplate protocols and quirky patterns and you can make [0] behave as 0. The former is a barrier, the latter is an unnecessary toy that actually messes with beginners. This idea was wrong not because beginners shouldn’t program. It’s wrong cause it makes the road unnecessarily bumpy for everyone. If you have ([T] | T) in your api, which actually was the reason for it, iirc, just make a function toT() that returns T either way.


People getting started can handle more advanced things than most people think they can. Look at Arduino, which is many people's introduction to programming. That's C/C++.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: