6 ms·
The Delphi compiler, when hosted in the IDE, has done this since 1996 or so. The symbol table, generated code etc. for every compilation unit is kept in memory
by barrkel 10y ago
The Delphi compiler, when hosted in the IDE, has done this since 1996 or so.
The symbol table, generated code etc. for every compilation unit is kept in memory and only discarded if the source is modified. All imports across compilation units are done via a double indirection, so the symbols can be unlinked and relinked more easily.
(Sub-second recompiles in Delphi are the norm, not the exception. In large projects, most of the time during dev builds is linking, and that's usually only a few seconds.)
- pjmlp 10y agoWhich is why I kind of think that it is a bit sad when millennials think Go compilation speed is some kind of achievement. Specially given Delphi features vs Go ones.
- adrianN 10y agoEspecially given the CPUs used in the computers back when Delphi was popular.
- pjmlp 10y agoYeah that as well, and even Turbo Pascal was already quite fast on MS-DOS systems (I was using it with MS-DOS 5.0).
- jerf 10y agoI've said a couple of times that new language designers should thank their lucky stars that C++ has set the bar for "fast compilation" so low. Coming out of the gate with a compiler that's "faster than C++!" is pretty doable even for a relatively compile-time heavy language. If you had to come out of the gate with something as fast as Delphi to be taken seriously, we wouldn't get very many new languages. (I mention this in the context of my observation that the minimum bar to be taken seriously for a language is going steadily up. You certainly need a standard library that is powerful out of the gate, whether or not it is necessarily "part" of the language, and we're getting perilously close to the language being required to ship some heavy-duty HTTP stuff, possibly a server implemented in the language, before it stands a chance. Rust may have snuck in under the wire on that, though of course that stack is developing apace even so.)
- neikos 10y agopython has a http server coming with the standard installation
- stevedonovan 10y agoGo (despite its faults) definitely raised that minimum bar; a language needs to arrive with a package manager and doc tools, as well as enough standard library to get non-trivial things going. Rust made the right decision on HTTP - let the ecosystem provide. Of course, the result of that is summarized in the quote by Grace Hopper: “The wonderful thing about standards is that there are so many of them to choose from.”
- marcosdumay 10y agoThere's always the Python way: Let the ecosystem provide, then, once there's a few clean winners, pick one as the official (while keeping the others there, obviously).
- paulddraper 10y agoC++/Boost does that
- marcosdumay 10y agoYes (what is quite inline with the C tradition). What is interesting is that I can't think of a lot languages that do it. It should be the default, as it's easy, safe, and gets good results. Somehow, it isn't. And then there's the Haskell's way of: let the community informally choose the one best option, and when somebody uses any of the other ones, just get somebody near him telling "nobody goes there anymore, come to this other place". It works very well, but is a bit confusing for newbies.
- pjmlp 10y agoGo's minimum bar is well below Active Oberon, Delphi, Eiffel, Java and .NET ones.
- noir_lord 10y agoDelphi is still my favourite ever development environment even though I haven't touched it for over a decade. IDE power, the VCL, amazing documentation, rapid builds, clean OO language, it had it all.
- mickronome 10y agoFor building GUI small/medium applications on windows I don't think there have never existed anything more convenient. Not to mention that usually your only deliverable was a single executable file.
- noir_lord 10y agoAgreed and it was fast at runtime as well, not far off the same speed as C++ for a lot of things, I remember using it for some pretty performance intensive stuff and you could easily drop to assembly if needed. It was a fantastic development environment even by modern standards but for its time it was well ahead of the curve. I still try out Lazarus once in a while just for nostalgia :)
- pjmlp 10y agoIt IS fast. We are doing a project with a company that uses it for all their Windows applications. Delphi conferences are still a thing in Germany.
- noir_lord 10y agoIt was pretty big over here as well, the last version I used in anger was 7 but I still see the odd job posted for Delphi devs.