3 ms·
The first paragraph in the introduction claims the "failure to fulfill expectations" of Algol 68 and Ada were because they were designed by a committee. Leaving
by SulphurCrested 4y ago
The first paragraph in the introduction claims the "failure to fulfill expectations" of Algol 68 and Ada were because they were designed by a committee. Leaving aside whether they were or weren't disappointments, neither was really designed by a committee. Algol 68 was famously presented as a fait accompli to the IFIP committee by Adriaan van Wijngaarden, as documented by Dijkstra and leading to the minority report and ultimately Wirth's Algol W and then Pascal. Ada was largely designed by Jean Ichbiah, and all the various committees of the US DoD did were choose his design over the competitors.
Both languages strongly appealed to me, probably because of their cohesive (one-man!) designs, although I never got the chance to use them professionally. So I do agree that a strong, usually one-person, design is the way to go. But both Algol 68 and Ada failed for other reasons. I'm speculating, but I suspect they simply required too much of the average programmer: mathematical sophistication in the case of Algol 68, and discipline in the case of Ada.
The other plank of TFA's argument is that successful languages are built up slowly based on experience of requirements. I think if such a language ends up any good, it's either luck or someone spending a lot of effort pushing back on bad proposals. I'm sure you too have a list of languages in mind which grew in an undisciplined manner, until they strangled themselves. I think of language designers who allow that as like Maxwell Smart in Control headquarters, running coloured strands of wool between pushpins on a map until it's a woolly mess.
I suspect what really made Lua a success is it found users among game developers at the right time in its development, and did not try to be much more than that. In that sense, by listening to users and adding things, they achieved a good design (I assume – I don't really know the language), and because it did not achieve wild success that constituency of users was not so diverse as to baroquify the language.
A language can fail if it is a clean design but doesn't have users (Eiffel). A language with an ugly, committee, design can succeed if it has users (C++).
- wruza 4y agoI was lurking in their mailing list for some time and they push back a lot, I’d even say they managed to create a culture of no-feature. Whether it was good or bad idk, because (as expected) some proposals sounded good to me, some so so. What makes Lua unpopular imo, beyond subjective trivialities, is that they break compatibility in every version and in fact they release flavors of the same core idea vs updates of a language. Also it is technical and not user-friendly for windows users, because luarocks (package manager) is unusable there unless you’re skilled in C build systems and are ready to fix these issues. I lost track of it at 5.3. I think Lua would feel much better if it stopped at 5.2 (or even at 5.1, fixing the shortcomings in 5.1 way) and took care of what’s called ecosystem, emerging around its game popularity.
- pydave 4y ago> Also it is technical and not user-friendly for windows users, because luarocks (package manager) is unusable there unless you’re skilled in C build systems and are ready to fix these issues. I've found using hererocks[1] makes setting up lua and luarocks on Windows very easy. Running it in visual studio's command prompt has let me install pure Lua and C rocks. However, I've noticed many rocks aren't updated on luarocks and the best way to install them is to point luarocks to the rockspec file in their git repo. Instead of `luarocks install testy` you do something like `luarocks install https://raw.githubusercontent.com/siffiejoe/lua-testy/master/testy-scm-0.rockspec https://raw.githubusercontent.com/siffiejoe/lua-testy/master...` I don't use Lua for desktop development, so I only use rocks for dev tools to help write Lua for my embedded target, so I'm not sure how popular luarocks is these days. [1] https://github.com/luarocks/hererocks https://github.com/luarocks/hererocks
- pull_my_finger 4y ago> in fact they release flavors of the same core idea vs updates of a language What is the feature you're referring to here? If I read it correctly, it sounds more like JavaScript with their competing module/import schemes.
- wruza 4y agoTinkering with ways to do arrays, iteration, function environments, coroutines. Some ways are improvements, some may be seen as an improvement, some are just different.
- reacweb 4y agoI have used Ada during 8 years (3 years as student, 5 years work). The failure of Ada is the idea that "development of reusable libraries is left as an exercise for the developper". Standardisation of libraries was very slow and/or incomplete.