On Saturday, 29 September 2012 at 10:53:57 UTC, Peter Alexander
wrote:
On Saturday, 29 September 2012 at 10:27:26 UTC, Nick Sabalausky
wrote:
If he were talking about some minor insignificant feature,
then I agree
it'd be goofy to reject a language solely because of that. But
that's
not what's happening. Generics are a major thing. Many people
*do* find
them to make a big difference.
So, with this in mind, do you think these hypothetical people
are all justified?
(a) [Go programmer]: D is rubbish because it doesn't have
channels.
(b) [Lisp programmer]: D is rubbish because it doesn't have
homoiconicity.
(c) [Haskell programmer]: D is rubbish because it doesn't have
full type inference.
All of those things are considered "a major thing" by their
users, and many people do find them to "make a big difference."
My question to you: Is it okay to reject D solely with these
arguments? If not, how is this any different from rejecting Go
solely from its lack of generics?
Because except for Go, all static languages developed after 1990,
which managed to gain mainstream use, have some form of generics.
Just to name a few out of my mind:
- Ada
- Modula-3
- Eiffel
- C++
- D
- Java
- VB.NET
- Object Pascal/Delphi
- Ocaml
- F#
- Haskell
- Scala
For those like myself that use C++ since the 'C with classes'
time, Go's lack of generics feels like time travel into a time
where generics were some strange stuff in compiler design papers.
The days when C++ compiler vendors used to offer C macro
processor hacks, or external tools to enable the use of fake
generics in C++ code. Borland was one of them, for example.
Funny enough, this type of tooling seems to start appearing in
the Go community, proving that regardless of what they say, the
need is there.
--
Paulo