5 ms·
"Go's speed of compilation is very nice, although I'm afraid I view that not so much as a strength of Go but as an awfulness of C++." I think his point is that
by klipt 17y ago
"Go's speed of compilation is very nice, although I'm afraid I view that not so much as a strength of Go but as an awfulness of C++."
I think his point is that Go isn't special in this regard since many languages already compile much faster than C++. For example, Delphi/Free Pascal.
- jacquesm 17y agoSure, but Go is aiming for the space that C/C++ occupy, not for the space that Delphi and Free Pascal occupy. And neither Delphi nor Free Pascal look like they are going to be threatening C/C++ any time soon, this new language just might.
- klipt 17y agoFree Pascal is almost identical to C++ apart from syntax; they're both compiled, statically typed Algol descendants with object orientation and generics bolted on. Which is partly why Free Pascal use is still marginal - the only significant advantage is compilation speed, while lack of popularity is a major disadvantage in terms of libraries, quality of optimizing compilers, etc.
- jacquesm 17y agoI see two drawbacks with 'Free Pascal', first the name (naming your language 'Pascal' is a surefire way of getting lots of people to turn off on the spot, even if it had lots of merits), secondly there does not seem to be any lively community around the language (but that may be related to the first item).
- barrkel 17y agoThe Delphi community is small but vocal. It may just be that you don't notice them if you're not looking for them!
- jacquesm 17y agoPersonally I think delphi will always be one of the most undervalued platforms of all time. Good IDE, lightning fast, lots of libraries. In many ways it was way ahead of its time. It's also an excellent example of product quality not being the metric by which success will be determined. Unfortunately.
- stcredzero 17y agoOn top of compilation speed, Go also has CSP style support for concurrency built in, which is something that C++ will only ever have bolted on.
- jongraehl 17y agoThe standard gnu linker is quite slow. Free Pascal does have generics, but doesn't appear to have equivalent template metaprogramming. C++ that only uses templates for generics may be similarly fast-compiling. I'd compare C to Pascal.
- barrkel 17y agoIndeed. Rob Pike makes a point of the 120kloc RTL compiling in 8 seconds in his presentation video, but the Delphi RTL on my machine right here compiles in about 11 seconds, and it has over 417kloc - and much (~ 2 to 3 seconds) of that time is in linking together a runtime package, for folks who want a dynamically linked RTL, rather than statically linked.
- uriel 17y agoIs that compiling after the equivalent of 'make clean'?
- barrkel 17y agoDoesn't really make any difference. Cleaning the RTL takes about 170ms - it's just deleting some files. Build is driven by msbuild, so there is some .NET startup cost in there too. EDIT: Oh, you mean is it an incremental build? No. It's a full clean build, and that 11 seconds also includes preprocessing some API header files.