4 ms·
It seems that anything that comes out of "standards bodies" ends up looking like C++. Standards in general need to become simpler.
by newt0311 18y ago
It seems that anything that comes out of "standards bodies" ends up looking like C++. Standards in general need to become simpler.
- smanek 18y agoCommon Lisp came out of ANSI, and I'd say it doesn't look like C++ ;-)
- pg 18y agoScheme would be a better example.
- newt0311 18y agoYes it does. It has at least 4 different ways to loop, 4 different types of arguments to functions, 5 or 6 different lets (functions, macros, let* , normal let, ...), 3 or 4 different kinds of variables (with no unifying underlying theme), and at least 3 different flow models (the nested lists, tagbodies, loops with returns, etc...). That is exactly the same problem with C++. Instead of finding unifying abstractions which give the same functionality with 1 idea, they have chosen to add in multiple specific quick fixes to the language. They have chosen to amend the language with a thousand small changes, each suited to its own little use case, and have ended up with a monster of a standard that takes up 15 megabytes in 2300 files with 110,000 hyperlinks. Thats 15 mega bytes mostly of text. Scheme is a lot better but its going the way of CL, slowly but surely.
- jshen 18y agoaren't the 4 different types of arguments useful? I end up hacking it into my ruby code because it's missing. Crap like def my_meth(options = {}); options[:named_arg_1] ||= 'bob'; options[:named_arg_2] ||= 'blub' end
- newt0311 18y agoTo a limit. Admittedly, having different argument types is pretty useful but still, 5 independent parts with their own semantics some of which may not be usable in certain contexts* ? how are auxiliary arguments useful in the general case? This still does not affect the rest of my claims. Having multiple execution models in the same language is bloated. So are many other things in the CL standard. * Details: http://www.lispworks.com/documentation/HyperSpec/Body/03_da.htm http://www.lispworks.com/documentation/HyperSpec/Body/03_da....
- jshen 18y agoyeah, i wasn't trying to dispute your main claim, I just miss CLs argument types when I'm in other languages so it jumped out at me.