4 ms·
Yet not a single one of those examples is a mainstream language. So when you finish the project and move on to bigger things I've got a codebase that no one can
by vvanders 9y ago
Yet not a single one of those examples is a mainstream language. So when you finish the project and move on to bigger things I've got a codebase that no one can maintain.
Note that I didn't say that it was impossible, just that the ergonomics of GC'd languages don't tend to focus on performance in the ways that languages with explicit memory control do.
- pjmlp 9y agoMost of those languages died due to political reasons and company acquisitions, not because of lack of technical features. GC systems programming languages offer exactly the same explicit control as C does, in unsafe memory blocks. Do you want to shot yourself like C in Modula-3? Declare a variable as UNTRACED REF, 100% like a C pointer. Do you want a C union? Declare a tagged RECORD type. Do you want a packed record to fill you cache line? Compiler alignment pragmas. Allocation of value types on the stack or global memory section? Great, it is the default allocation type. Bit fiddling to prepare a statically allocated buffer for a DMA transfer? UNSAFE code section.
- vvanders 9y ago> Most of those languages died due to political reasons and company acquisitions, not because of lack of technical features. Yet you just talked past my point to give some sort of soliloquy about Modula-3. It doesn't matter how those languages died, it just matters that they did. The ecosystem and number of people who know how to write a language is almost, if not more important than the language when it comes to shipping software.
- pjmlp 9y agoNo, my point was that these languages have 100% the same ergonomics as C in what concerns explicit memory management, with the additional productivity of having a GC around when those requirements aren't a must. We should not think of Java when comparing system programming languages with GC against C.
- vvanders 9y agoYet you still keep talking past my point(while also nicely moving the goalpost). Yes, the languages you mention meet all the technical requirements(congrats, here's your 10 internet points) it doesn't matter if I can't find people who know how to write it. Since you seem to want to avoid talking about anything I raise I don't think it's productive to continue this conversation.
- pjmlp 9y agoJust because these languages died, doesn't mean we cannot take those lessons into GC languages where you can find people who know how to write it. For example, all the work with System C# done in Midori has been being applied to C#, with .NET Native, ref returns, local ref variables, value tuples, regions with disabled GC, memory slices, with a few more down the roadmap, like effectively manual memory management presented at OOPSLA 2017. Or the ongoing @nogc and BetterC improvements in D, Wallmart, EBay, Netflix, Remedy Games among many others, seem to be able to find people that know how to write it.
- zeveb 9y agoDo you want a reliable project which is difficult to hire for, or an unreliable project it is easy to hire for?